1. Field of the Invention
The present invention relates generally to signal measurement systems such as logic analyzers and digital oscilloscopes and, more particularly, to a system and method for creating and manipulating hierarchical relationships among signals and buses using a graphical user interface on a signal measurement system.
2. Related Art
Conventional logic analyzers and other signal measurement systems such as digital oscilloscopes allow a user to acquire and display digital signal data from a large number of logic signals (signals), such as those that travel over address, data and control lines of a device under test. A device under test may be a microprocessor, random access memory, or other types of chips or chip sets. A display device generally is used to allow the user to visualize the acquired signal data.
The signals typically are received from the device under test on physical electrical lines referred to as xe2x80x9cchannels.xe2x80x9d The channels may be physically assembled into groups called xe2x80x9cpods.xe2x80x9d The received signals are sampled and digitized to form signal data. Digitizing is typically performed by comparing the voltage magnitude of each of these logic signal samples to a reference voltage threshold to determine the logic state of the signals received at each channel. Sampling may occur at one of a number of selectable rates, generally depending upon the frequency at which the sampled signals change logic states.
The resultant signal data are stored in a signal data memory generally having a fixed size, under the control of a sampling clock. The data typically are stored in a sequential manner so that consecutive signal samples are stored in consecutive memory locations. Due to the quantity of signal data, signal data memory is commonly implemented as a wrap-around buffer.
Selection of the portion of the data that is stored and subsequently presented on a display is determined by a user-defined trigger specification. The trigger specification is specified by two parameters, a trigger condition and a trigger position. The occurrence of the trigger condition indicates that data is to be stored. The trigger position determines how much data is stored before and/or after the trigger condition occurs.
The trigger condition may be specified using occurrences such as shift in a signal value from low to high (rising edge) or a shift from high to low (falling edge). Also, a trigger condition may be specified with reference to a signal state, such as a xe2x80x9clogic highxe2x80x9d state or a xe2x80x9clogic lowxe2x80x9d state. These occurrences or states may be referred to as xe2x80x9ceventsxe2x80x9d for purposes of specifying a trigger condition. Alternatively, a trigger condition may be specified by requiring that a number of events occur simultaneously, or in a specified time sequence. Any of the logic signals received by the logic analyzer may be used to specify a trigger condition. The term xe2x80x9cbusxe2x80x9d conventionally is used to refer to a group of channels that are conceptually grouped together even though they need not be physically grouped together. Thus, for example, a bus may be defined as including channels A, B, and C to assist a designer in comparing and analyzing the signals present on those channels. To this end, the signals conceptually grouped together in the bus often are displayed together on a display device where they may be observed or measured by the designer. These signals may be displayed as waveforms. Also, the values of the signals in the bus at a particular instant, collectively referred to as the xe2x80x9cbus valuexe2x80x9d at that time, may be displayed. For example, the logic analyzer may determine that the value of the signal A at a particular time is the binary value xe2x80x9c0,xe2x80x9d the value of the signal B is xe2x80x9c1xe2x80x9d at that time, and the value of the signal C is xe2x80x9c0xe2x80x9d at that time. The bus consisting of those signals may then be said to have the binary value xe2x80x9c010,xe2x80x9d which may also be expressed as a hexadecimal value, or a value in any other base.
Buses may be used to specify trigger conditions in a manner analogous to that in which signals are used. For example, a bus xe2x80x9ceventxe2x80x9d may be defined as the occurrence of a bus value xe2x80x9cequal,xe2x80x9d or xe2x80x9cnot equal,xe2x80x9d to a particular value. Referring to the previous example, a bus event for the bus consisting of channels A, B, and C may be defined as xe2x80x9cequals 010.xe2x80x9d This event occurs when channels A, B, and C have the values noted above. In other known variations, a trigger condition may be specified as the occurrence of a bus value within, or, alternatively outside, a specified range of bus values.
After a trigger condition has been specified, the user may initiate the capture of signal samples. A trigger sequencer generally is used to compare each of the signals identified as contributing to the trigger condition to the specified trigger condition. When the trigger sequencer determines that the signal data matches the specified trigger condition, the trigger sequencer determines if trigger position is satisfied. If the trigger position has been selected to indicate that the display should include only signal data collected prior to occurrence of the trigger condition, then data collection typically ceases upon the occurrence of the trigger condition. Conversely, if the trigger position has been selected to indicate that the display should include only signal data collected subsequent to the occurrence of the trigger condition, the signal data memory generally is allowed to fill with data after the occurrence of the trigger condition. Alternatively, the user may chose a trigger position between these two positions, resulting in a data display that includes signal data that occurred both before and after the trigger condition. The signal data then may be sequentially read from the signal data memory and displayed to the user.
There are numerous conventional formats for displaying the signal data to the user. These formats vary depending on, among other things, the number of signals that are displayed, the manner in which signal data are grouped, the time axes used to display the signal data, the manner in which trigger conditions and trigger positions are shown, and so on.
Conventional signal measurement systems typically require the user to open a separate dialog box to specify and to alter the format in which the signal data are displayed. Aspects of the format that the user may wish to alter include, for example, changes in the groupings of signals into buses, renaming of signals and buses, or adding or removing signals or buses from the display. A drawback to these conventional systems is that the dialog box for changing the format of the display obscures the user""s view of the signals that are being manipulated. A second drawback of using dialog boxes to alter the display is that they generally are not intuitive. That is, they typically require that the user learn a particular syntax and learn other techniques for changing the format of the display. Conventional systems thereby generally require that new users invest significant amounts of time learning how to manipulate the display formats. If this learning is not frequently used, it may be forgotten. The user must then re-learn the syntax and other particulars of display formatting at a subsequent time. Even expert and frequent users suffer from the inconvenience and distraction of having to open and operate the display formatting dialogue box separate from the data signal display.
The present invention is directed in one embodiment to a system for manipulating a bus-name or signal-name elements on a display window of a graphical user interface of a signal measurement system. Each signal-name element is associated with a set of signal data. The system enables a user to graphically associate signal-name elements The signal-name elements are visually associated on the display window with signal-data elements representing their associated signal data sets. Also, the first signal-name element may be visually associated on the display window with at least one trigger-condition element. The trigger-condition element may be associated with the signal data that is associated with the first signal-name element.
In some embodiments, the signal data may be sampled signal data, the signal measurement system may be a logic analyzer, the visual association may be either by horizontal or vertical alignment, or any combination thereof.
The user may graphically associate signal-name elements by selecting two or more signal-name elements and then grouping them by selecting a group command. Responsive to the association by the user of the signal-name elements, the system may generate a bus-name element representing the grouped signal-name elements. The bus-name element may be graphically associated with the grouped signal-name elements, such as, for example, by a hierarchical structure. The grouped signal-name elements may be at the same level in the hierarchical structure; and the bus-name element may occupy a superior level in the structure.
In some embodiments, the system, responsive to the association by the user of grouped signal-name elements, generates a set of bus-data elements representing signal data associated with the grouped signal-name elements. The system may visually associate the bus-name element with the bus-data element, either by horizontal or vertical alignment.
Also, the system enables the user to graphically associate additional signal-name elements with the bus-name element, or with the signal-name elements that are grouped with the bus-name element. This graphical association may be by a hierarchical structure.
In some embodiments, the system includes a bus-name element and the user may graphically associate signal-name elements with the bus-name element. For example, the user may graphically associate a signal-name element with the bus-name element by first selecting the signal-name element and then dragging it to the vicinity of the bus-name element. This graphical association may be by a hierarchical structure, and the bus-name element may be superior in the hierarchical structure to the signal-name element.
The system enables the user, in some embodiments, to graphically disassociate signal-name elements that have been associated. This may be done by first selecting the grouped signal-name elements and then ungrouping them by selecting an ungroup command. Also, the user may graphically disassociate a grouped signal-name element from a bus by selecting the signal-name element and then dragging it away from the vicinity of the bus-name element, or away from the vicinity of other signal-name elements in the bus.
Further, the user may graphically collapse a bus-name element so that its constituent signal-name elements are not displayed on the display window. The user may also expand a collapsed bus-name element so that its constituent signal-name elements are displayed on the display window. Both the signal- and bus-name elements may be user-selectable, or user-deletable.
In other embodiments, the invention is directed to a method for displaying bus- and signal-name elements on a display window of a graphical user interface of a signal measurement system. The method includes the steps of:
(1) associating each signal-name element with a set of signal data;
(2) visually associating, on the display window, a first signal-name element with a set of signal-data elements representing its associated signal data set; and
(3) repeating step (2) for a second signal-name element such that the first and second signal-name elements are graphically associated.
In some implementations, the method may also include the step of (4) visually associating the first signal-name element on the display window with at least one trigger-condition element. In other implementations, the method may include the further steps of: (4) visually associating, on the display window, a third signal-name element with a set of signal-data elements representing its associated signal data set; and (5) enabling a user graphically to associate the third signal-name element with the first signal-name element by first selecting the third and first signal-name elements and then grouping them by selecting a group command. Also, the method may have the step of (6) responsive to the association by the user of the third and first signal-name elements, displaying a bus-name element representing the third and first signal-name elements.
The above embodiments are not necessarily inclusive or exclusive of each other and may be combined in any manner that is non-conflicting and otherwise possible, whether they be presented in association with a same, or a different, aspect of the invention. The description of one embodiment is not intended to be limiting with respect to other embodiments. Also, any one or more function, step, operation, or technique described elsewhere in this specification may, in alternative embodiments, be combined with any one or more function, step, operation, or technique described in the summary. Thus, the above embodiments are illustrative rather than limiting.